//=============================================================================
// System  : MatchKit
// File    : MatchAsyncResult.cs
// Author  : Fabio Bussu  (matchkit@fabiobussu.it)
// Updated : 04/16/2013
// Note    : Copyright 2013, Fabio Bussu, All rights reserved
//
// This code is published under the Microsoft Public License (Ms-PL). A copy
// of the license should be distributed with the code.  It can also be found
// at the project website: http://matchkit.codeplex.com. This notice, the
// author's name, and all copyright notices must remain intact in all
// applications, documentation, and source files.
//
// Version     Date     Who  Comments
// ============================================================================
// 1.0.0.0  04/16/2013   FB  First draft
//=============================================================================
using System;
using System.Collections.Generic;
using System.Text;

namespace MatchKit
{
	class MatchAsyncResult : IAsyncResult
	{
		private Func<string, IPattern, MatchOptions, Match> _del;
		private IAsyncResult _result;

		public MatchAsyncResult(Func<string, IPattern, MatchOptions, Match> del, IAsyncResult result)
		{
			_del = del;
			_result = result;
		}

		public object AsyncState
		{
			get { return _result.AsyncState; }
		}

		public System.Threading.WaitHandle AsyncWaitHandle
		{
			get { return _result.AsyncWaitHandle; }
		}

		public bool CompletedSynchronously
		{
			get { return _result.CompletedSynchronously; }
		}

		public bool IsCompleted
		{
			get { return _result.IsCompleted; }
		}

		public Match EndMatch()
		{
			return _del.EndInvoke(_result);
		}
	}
}
